package crypt

import "gitee.com/851537/gbase"

type ICrypto interface {
	SetPrivateKeyFile(file *gbase.File)
	SetPublicKeyFile(file *gbase.File)
}

// 设置私钥泛文件型函数
func WithPrivateKeyFile[T ICrypto](file *gbase.File) gbase.Option[T] {
	return func(obj T) {
		obj.SetPrivateKeyFile(file)
	}
}

// 设置公钥文件泛型函数
func WithPublicKeyFile[T ICrypto](file *gbase.File) gbase.Option[T] {
	return func(obj T) {
		obj.SetPublicKeyFile(file)
	}
}
